bewareLoadStoreAlignment ArchMipsel = True
bewareLoadStoreAlignment (ArchARM {}) = True
bewareLoadStoreAlignment ArchAArch64 = True
+ bewareLoadStoreAlignment ArchSPARC64 = True
-- Pessimistically assume that they will also cause problems
-- on unknown arches
bewareLoadStoreAlignment ArchUnknown = True
| ArchARM ArmISA [ArmISAExt] ArmABI
| ArchAArch64
| ArchAlpha
+ | ArchHPPA
| ArchMipseb
| ArchMipsel
| ArchRISCV64
+ | ArchSPARC64
| ArchLoongArch64
| ArchJavaScript
| ArchWasm32
ArchARM ARMv7 _ _ -> "armv7"
ArchAArch64 -> "aarch64"
ArchAlpha -> "alpha"
+ ArchHPPA -> "hppa"
ArchMipseb -> "mipseb"
ArchMipsel -> "mipsel"
ArchRISCV64 -> "riscv64"
ArchLoongArch64 -> "loongarch64"
+ ArchSPARC64 -> "sparc64"
ArchJavaScript -> "javascript"
ArchWasm32 -> "wasm32"
alpha)
test -z "[$]2" || eval "[$]2=ArchAlpha"
;;
+ hppa|hppa1_1)
+ test -z "[$]2" || eval "[$]2=ArchHPPA"
+ ;;
mips|mipseb)
test -z "[$]2" || eval "[$]2=ArchMipseb"
;;
loongarch64)
test -z "[$]2" || eval "[$]2=ArchLoongArch64"
;;
- hppa|hppa1_1|ia64|m68k|nios2|riscv32|loongarch32|rs6000|s390|sh4|sparc|sparc64|vax)
+ sparc64)
+ test -z "[$]2" || eval "[$]2=ArchSPARC64"
+ ;;
+ ia64|m68k|nios2|riscv32|loongarch32|rs6000|s390|sh4|sparc|vax)
test -z "[$]2" || eval "[$]2=ArchUnknown"
;;
javascript)
"mipseb" -> pure ArchMipseb
"mipsel" -> pure ArchMipsel
"riscv64" -> pure ArchRISCV64
- "hppa" -> pure ArchUnknown
+ "hppa" -> pure ArchHPPA
"wasm32" -> pure ArchWasm32
"javascript" -> pure ArchJavaScript
"loongarch64" -> pure ArchLoongArch64
+ "sparc64" -> pure ArchSPARC64
_ -> throwE $ "Unknown architecture " ++ arch
parseOs :: String -> M OS